<template>
	<view class="classlist">
		<view class="loadingLayout" v-if="!classList.length && !noData">
			<uni-load-more status="loading"></uni-load-more>
		</view>
		
		<view class="content">
			<navigator :url="'/pages/preview/preview?id='+item._id" class="item" 
			v-for="item in classList" :key="item._id">
				<image :src="item.smallPicurl" mode="aspectFill"></image>
			</navigator>
		</view>
		
		<view class="loadingLayout" v-if="classList.length || noData">
			<uni-load-more :status="noData? 'noMore':'loading'"></uni-load-more>
		</view>
		
		<view class="safe-area-inset-bottom"></view>
	</view>
</template>

<script setup>
	import {ref} from 'vue'
	import {onLoad,onUnload, onReachBottom,onShareAppMessage,onShareTimeline} from '@dcloudio/uni-app'
	import {apiGetClassList,apiGetHistoryList} from "@/api/apis.js"
	import {gotoHome} from "@/utils/common.js" 
	
	const classList = ref([])
	const noData = ref(false)
	//定义data参数
	const queryParams = {
		pageNum:1,
		pageSize:12
	}
	let pageName;
	
	onLoad((e)=>{
		let {id=null,name=null,type=null} = e;
		if(id) queryParams.classid = id;	
		if(type) queryParams.type = type
		
		pageName = name;
		uni.setNavigationBarTitle({
			title:name
		})
		getClassList()
	})
	
	onReachBottom(()=>{
		if(noData.value) return
		queryParams.pageNum++
		getClassList()
	})
	
	onUnload(()=>{
		uni.removeStorageSync('storgClassList')
	})
	
	onShareAppMessage(()=>{
		return {
			title:"壁纸" + pageName,
			path:"/pages/classlist/classlist?id=" + queryParams.classid + '&name=' + pageName
		}
	})
	
	onShareTimeline(()=>{
		return {
			title:"壁纸~~~" + pageName,
			query:"id=" + queryParams.classid + '&name=' + pageName
		}
	})
	
	const getClassList = async () => {
		let res;
		if(queryParams.classid)res = await apiGetClassList(queryParams)
		if(queryParams.type) res = await apiGetHistoryList(queryParams)
		if(queryParams.pageSize > res.data.length){
			noData.value = true
		}
		classList.value = [...classList.value, ...res.data]
		uni.setStorageSync('storgClassList',classList.value)
	}
</script>

<style lang="scss" scoped>
.classlist{
	.content{
		display: grid;
		grid-template-columns: repeat(3,1fr);
		gap:5rpx;
		padding:5rpx;
		.item{
			height: 440rpx;
			image{
				width: 100%;
				height: 100%;
				display: block;
			}
		}
	}
}
</style>

